home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Dev / gcc263-src.lha / gcc-2.6.3 / config / i386 / sco.h < prev    next >
C/C++ Source or Header  |  1994-02-24  |  3KB  |  101 lines

  1. /* Definitions for Intel 386 running SCO Unix System V.  */
  2.  
  3.  
  4. /* Mostly it's like AT&T Unix System V. */
  5.  
  6. #include "i386/sysv3.h"
  7.  
  8. /* By default, target has a 80387, uses IEEE compatible arithmetic,
  9.    and returns float values in the 387, ie,
  10.    (TARGET_80387 | TARGET_FLOAT_RETURNS_IN_80387)
  11.  
  12.    SCO's software emulation of a 387 fails to handle the `fucomp'
  13.    opcode.  fucomp is only used when generating IEEE compliant code.
  14.    So don't make TARGET_IEEE_FP default for SCO. */
  15.  
  16. #undef TARGET_DEFAULT
  17. #define TARGET_DEFAULT 0201
  18.  
  19. /* Let's guess that the SCO software FPU emulator can't handle
  20.    80-bit XFmode insns, so don't generate them.  */
  21. #undef LONG_DOUBLE_TYPE_SIZE
  22. #define LONG_DOUBLE_TYPE_SIZE 64
  23.  
  24. /* Use crt1.o as a startup file and crtn.o as a closing file.  */
  25.  
  26. #undef STARTFILE_SPEC
  27. #define STARTFILE_SPEC \
  28.  "%{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s}%{!p:crt1.o%s}} crtbegin.o%s"
  29.  
  30. #define ENDFILE_SPEC "crtend.o%s crtn.o%s"
  31.  
  32. /* Library spec, including SCO international language support. */
  33.  
  34. #undef LIB_SPEC
  35. #define LIB_SPEC \
  36.  "%{p:-L/usr/lib/libp}%{pg:-L/usr/lib/libp} %{scointl:libintl.a%s} -lc"
  37.  
  38. /* Specify predefined symbols in preprocessor.  */
  39.  
  40. #undef CPP_PREDEFINES
  41. #define CPP_PREDEFINES "-Dunix -Di386 -DM_UNIX -DM_I386 -DM_COFF -DM_WORDSWAP -Asystem(unix) -Asystem(svr3) -Acpu(i386) -Amachine(i386)"
  42.  
  43. #undef CPP_SPEC
  44. #define CPP_SPEC "%{scointl:-DM_INTERNAT}"
  45.  
  46. /* This spec is used for telling cpp whether char is signed or not.  */
  47.  
  48. #undef SIGNED_CHAR_SPEC
  49. #if DEFAULT_SIGNED_CHAR
  50. #define SIGNED_CHAR_SPEC \
  51.  "%{funsigned-char:-D__CHAR_UNSIGNED__ -D_CHAR_UNSIGNED}"
  52. #else
  53. #define SIGNED_CHAR_SPEC \
  54.  "%{!fsigned-char:-D__CHAR_UNSIGNED__ -D_CHAR_UNSIGNED}"
  55. #endif
  56.  
  57. /* Use atexit for static destructors, instead of defining
  58.    our own exit function.  */
  59. #define HAVE_ATEXIT
  60.  
  61. /* Specify the size_t type.  */
  62. #define SIZE_TYPE "unsigned int"
  63.  
  64. #if 0 /* Not yet certain whether this is needed.  */
  65. /* If no 387, use the general regs to return floating values,
  66.    since this system does not emulate the 80387.  */
  67.  
  68. #undef VALUE_REGNO
  69. #define VALUE_REGNO(MODE) \
  70.   ((TARGET_80387
  71.      && ((MODE) == SFmode || (MODE) == DFmode || (MODE) == XFmode)
  72.    ? FIRST_FLOAT_REG : 0)
  73.  
  74. #undef HARD_REGNO_MODE_OK
  75. #define HARD_REGNO_MODE_OK(REGNO, MODE)                      \
  76.   ((REGNO) < 2 ? 1                              \
  77.    : (REGNO) < 4 ? 1                              \
  78.    : FP_REGNO_P (REGNO) ? ((GET_MODE_CLASS (MODE) == MODE_FLOAT          \
  79.                           || GET_MODE_CLASS (MODE) == MODE_COMPLEX_FLOAT) \
  80.                          && TARGET_80387                  \
  81.                          && GET_MODE_UNIT_SIZE (MODE) <= 8)          \
  82.    : (MODE) != QImode)
  83. #endif
  84.  
  85. /* caller has to pop the extra argument passed to functions that return
  86.    structures. */
  87.  
  88. #undef RETURN_POPS_ARGS
  89. #define RETURN_POPS_ARGS(FUNTYPE,SIZE)   \
  90.   (TREE_CODE (FUNTYPE) == IDENTIFIER_NODE ? 0            \
  91.    : (TARGET_RTD                        \
  92.       && (TYPE_ARG_TYPES (FUNTYPE) == 0                \
  93.       || (TREE_VALUE (tree_last (TYPE_ARG_TYPES (FUNTYPE)))    \
  94.           == void_type_node))) ? (SIZE)            \
  95.    : 0)
  96. /* On other 386 systems, the last line looks like this:
  97.    : (aggregate_value_p (TREE_TYPE (FUNTYPE))) ? GET_MODE_SIZE (Pmode) : 0)  */
  98.  
  99. /* Handle #pragma pack. */
  100. #define HANDLE_SYSV_PRAGMA
  101.